From: Jasper St. Pierre Date: Wed, 13 Feb 2013 17:30:26 +0000 (-0500) Subject: layout: Don't use reparent X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~4886 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=978ac65caecd5e59b6d4ccab97662ded23a91b42;p=gnome-shell.git layout: Don't use reparent reparent() defines the new actor stacking order based on the existing depth of the actor, which is flat out wrong. Simply remove the actor from its old parent and add the new one in. https://bugzilla.gnome.org/show_bug.cgi?id=633620 --- diff --git a/js/ui/layout.js b/js/ui/layout.js index 4dc3f6156..3a240e0c3 100644 --- a/js/ui/layout.js +++ b/js/ui/layout.js @@ -151,7 +151,8 @@ const LayoutManager = new Lang.Class({ [alloc.min_size, alloc.natural_size] = [height, height]; }); - global.window_group.reparent(this.uiGroup); + global.stage.remove_actor(global.window_group); + this.uiGroup.add_actor(global.window_group); // Now, you might wonder why we went through all the hoops to implement // the GDM greeter inside an X11 compositor, to do this at the end... @@ -160,7 +161,9 @@ const LayoutManager = new Lang.Class({ if (Main.sessionMode.isGreeter) global.window_group.hide(); - global.overlay_group.reparent(this.uiGroup); + global.stage.remove_actor(global.overlay_group); + this.uiGroup.add_actor(global.overlay_group); + global.stage.add_child(this.uiGroup); this.screenShieldGroup = new St.Widget({ name: 'screenShieldGroup',